There is much interest in developing new techniques for physically separate computers to work together to share resources and processing responsibilities for various applications. One such area of interest is cloud gaming. In cloud gaming, a goal is to allow a video game application to be distributed to reside, execute, and be rendered on multiple computers. There is a need for software patterns and system architectures that optimize such a distributed nature and parallelism when executing applications across networks of conventional processors and emerging heterogeneous processing units.